package com.fdb.efp.nls.service.facade.queue;

import java.util.List;

import com.fdb.efp.nls.service.vo.queue.NlsQueueTaskVO;

/**
 * 网贷任务队列
 * 
 * @author huangwb
 * @since 2018年12月27日 上午8:33:47
 * @version 1.0
 */
public interface NlsQueueTaskService {

	public List<NlsQueueTaskVO> queryAllOwner(NlsQueueTaskVO nlsQueueTaskVo);

	public List<NlsQueueTaskVO> queryAllCurrOrg(NlsQueueTaskVO nlsQueueTaskVo);

	public List<NlsQueueTaskVO> queryAllCurrDownOrg(NlsQueueTaskVO nlsQueueTaskVo);

	public List<NlsQueueTaskVO> queryAllCurrOwnerPrd(NlsQueueTaskVO nlsQueueTaskVo);

	public int insertNlsQueueTask(NlsQueueTaskVO inNlsQueueTaskVo) throws Exception;

	public int deleteByPk(NlsQueueTaskVO nlsQueueTaskVo);

	public int updateByPk(NlsQueueTaskVO nlsQueueTaskVo);

	public NlsQueueTaskVO queryByPk(NlsQueueTaskVO nlsQueueTaskVo);

	/**
	 * 查询待执行的队列任务表
	 * 
	 * @param nlsQueueTaskVo
	 * @return
	 * @author huangwb
	 * @since 2018年12月27日 下午7:10:20
	 * @version 1.0
	 */
	public List<String> queryExecutoryQueueTask(String queueTaskState);

	/**
	 * 根据申请流水号和待执行状态查询队列任务
	 * 
	 * @param nlsQueueTaskVO
	 * @return
	 * @author huangwb
	 * @since 2018年12月27日 下午9:52:50
	 * @version 1.0
	 */
	public NlsQueueTaskVO queryLockedExecutoryQueueTask(NlsQueueTaskVO nlsQueueTaskVO);

	/**
	 * 查询挂起的队列任务表
	 * 
	 * @param queueTaskState
	 * @return
	 * @author huangwb
	 * @since 2019年1月2日 下午8:58:10
	 * @version 1.0
	 */
	public List<String> queryHangQueueTask(String queueTaskState);

	/**
	 * 根据申请流水号和挂起状态查询队列任务
	 * 
	 * @param nlsQueueTaskVO
	 * @return
	 * @author huangwb
	 * @since 2019年1月2日 下午9:00:00
	 * @version 1.0
	 */
	public NlsQueueTaskVO queryLockedHangQueueTask(NlsQueueTaskVO nlsQueueTaskVO);
	
	/**
	  * 查询列表数据
	  * @param nlsQueueTaskVo
	  * @return
	  * @author qiuyf
	  * @since 2019年1月10日 下午5:41:52
	  * @version 1.0
	 */
	public List<NlsQueueTaskVO> queryListByCondition(NlsQueueTaskVO nlsQueueTaskVo);

}
